#pragma once
#include "CGIPrefix.h"
namespace Alice
{
    enum ETextureType
    {
        ETextureType1D,
        ETextureType2D,
        ETextureType3D,
        ETextureTypeCube
    };
    enum ETextureUsage
    {
        ETextureUsageSample,
        ETextureUsageStorage,
        ETextureUsageColorAttachment,
        ETextureUsageDSAttachment
    };
    enum ETextureFormat{
        ETextureFormatR8G8B8A8UNORM,
        ETextureFormatR16FG16FB16F,
        ETextureFormatR16FG16FB16FA16F,
        ETextureFormatR32FG32FB32F,
        ETextureFormatR32FG32FB32FA32F
    };
    class Texture
    {
    public:
        ETextureType mEBufferType;
        ETextureUsage mEBufferUsage;
        uint32 mWidth,mHeight,mDepth;
        ETextureFormat mFormat;
        RenderResource mRenderResource;
    };
}
#ifdef ALICE_OGL
#include "OpenGL/BufferOGL.h"
#endif